In a computer graphics system, a user may create diagrams, graphs, charts or other drawings on a display to be stored and printed. Data for creating the drawing is provided to the system by the user via an input device such as a keyboard or a mouse or a stylus with tablet. The input device provides a means for manipulating the drawing cursor on the system display and for invoking system functions.
On a keyboard, four "arrow keys" are used to move the cursor up, down, right, or left. If the user wants to move the cursor to the right, he depresses the right arrow key. When the cursor reaches the desired position, the user releases the key.
A mouse is a device which rests close to the system on a flat surface called a mouse pad. Movement of the cursor on the display tracks movement of the mouse along the mouse pad. This tracking may be accomplished by one of several means. These include a rolling ball in the bottom of the mouse which makes contact with the mouse pad and a laser beam emitted from the bottom of the mouse onto a grid of reflective material on the mouse pad. As a result of the tracking, the cursor may be moved on the display by simply sliding the mouse along the mouse pad in the desired direction.
A stylus is a device shaped like a pen which the user holds and moves along a tablet. A grid of sensors under the surface of the tablet detects the movement of the stylus. The cursor on the display tracks this movement of the stylus.
The input device also includes at least one switch which may be activated by the user. The switch is used to invoke the functions of the graphics system. On the keyboard, the switch is the space bar; on the mouse, the switch is a button on the top side of the mouse; and on the stylus, this switch is a button near the user's fingers. Throughout this Specification, where functions are described in relation to a mouse, it is implied that the use of the stylus instead is applicable. Some system functions are invoked by pressing and holding the switch; others are invoked by pressing and releasing the switch or "clicking".
Certain system functions are considered user-interactive operations. These operations require the user to supply some kind of input to complete them. They include drawing various shapes and typing text. One typical means of invoking these operations is to position the cursor over the name of the desired operation in a menu and then click on the name. Then, the mouse or keyboard is used to carry out the operation.
One example of a user-interactive operation is drawing a shape like a rectangle. The first step is to choose the operation from a menu by clicking on the name of the operation. Next, the cursor is moved to the area on the display where the rectangle is to be drawn. The button on the mouse (or space bar on the keyboard) is then pressed and held down. This marks one corner of the rectangle on the display. The mouse is then "dragged" across the mouse pad (or the arrow keys are manipulated) until the cursor indicates the desired location of the opposite corner of the rectangle. The operation is completed when the user releases the button (or space bar).
Typing text is another example of a user-interactive operation. Again, text is selected from a menu by clicking on it. Then, the desired text is typed on the keyboard. When the text is complete, the user clicks on some indicator to end the text operation.
A user-interactive operation cannot be interrupted. When dragging the mouse to draw a shape or when typing text, the operation cannot be suspended temporarily, nor can another system function be invoked. In order to call another system function the interactive operation must first be completed. Generally, when a user attempts to call another system function while performing an interactive operation, one of three things will happen. The application will complete the interactive operation in its present state, it will not allow another operation until the user finishes the operation, or it will abort the operation completely.